/**
 *	@file	tr_house.h
 *	@brief	トレーナーハウス セーブデータ
 *	@author	Miyuki Iwasawa
 *	@date	09.03.25
 */
#ifndef __H_TR_HOUSE_H__
#define __H_TR_HOUSE_H__

#include "tr_house_def.h"

/**
 *  ハウスセーブデータ型
 */
typedef struct _TR_HOUSE_SAVE	TR_HOUSE_SAVE;

/**
 * ハウスポケモンデータ型
 *	savedata/tr_house_data.hを必要な箇所以外では
 *	includeしないで済むように定義しておく
 */
typedef struct _TR_HOUSE_POKEMON	TR_HOUSE_POKEMON;

/**
 *  ハウスプレイヤーデータ型
 *	savedata/tr_house_data.hを必要な箇所以外では
 *	includeしないで済むように定義しておく
 */
typedef struct _TR_HOUSE_PLAYER	TR_HOUSE_PLAYER;

/**
 *  ハウストレーナーデータ型
 *	savedata/tr_house_data.hを必要な箇所以外では
 *	includeしないで済むように定義しておく
 */
typedef struct _TR_HOUSE_TRAINER	TR_HOUSE_TRAINER;

/**
 *	@brief	ハウス　セーブデータワークサイズ
 */
extern int TrHouseSave_GetWorkSize(void);

/**
 *	@brief	ハウス　セーブデータポインタ取得
 */
extern TR_HOUSE_SAVE* SaveData_GetTrHouseSave(SAVEDATA* sv);

/**
 *	@brief	ハウス　ポケモンデータサイズ
 */
extern int TrHousePoke_GetWorkSize(void);

/**
 *	@brief	ハウス　トレーナーデータサイズ
 */
extern int TrHouseTrainer_GetWorkSize(void);

/**
 *	@brief	ハウス　セーブデータクリア
 */
extern void TrHouseSave_Clear(TR_HOUSE_SAVE* sv);

/**
 *	@brief	ハウス　ポケモンデータクリア
 */
extern void TrHousePoke_Clear(TR_HOUSE_POKEMON* poke);

/**
 *	@brief	ハウス　プレイヤーデータクリア
 */
extern void TrHousePlayer_Clear(TR_HOUSE_PLAYER* pl);

/**
 *	@brief	ハウス　トレーナーデータクリア
 */
extern void TrHouseTrainer_Clear(TR_HOUSE_TRAINER* pt);

/**
 *	@brief	トレーナーデータが有効かどうか返す
 */
extern BOOL TrHouseTrainer_IsEnable(TR_HOUSE_TRAINER* pt);

/**
 *	@brief	同一プレイヤーのデータかどうかを判定
 */
extern BOOL TrHousePlayer_IsSamePlayerData(TR_HOUSE_PLAYER* pl1,TR_HOUSE_PLAYER* pl2);

#endif	//__H_TR_HOUSE_H__
